/*
    Project: OCMF (Operant Chamber Management Framework)
    Version: 1.0
    Author: Copyright (C) 2010, Samuel Delaney & Andrew Harvey
    Licence:
        This file is part of OCMF.

            OCMF is free software: you can redistribute it and/or modify
            it under the terms of the GNU General Public License as published by
            the Free Software Foundation, either version 3 of the License, or
            (at your option) any later version.

            OCMF is distributed in the hope that it will be useful,
            but WITHOUT ANY WARRANTY; without even the implied warranty of
            MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
            GNU General Public License for more details.

            You should have received a copy of the GNU General Public License
            along with OCMF.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef LOGGER_H
#define LOGGER_H

#include <QString>
#include <QDateTime>
#include <QFile>
#include <QTextStream>

class Logger
{
private:
    static QTextStream * logTextStream;
    static QFile * logFile;
public:
    static void OpenLog()
    {
        //create log file
        logFile = new QFile("ocmf.log");

        //open the log file truncated to write
        logFile->open(IO_WriteOnly | IO_Truncate );

        //create text stream
        logTextStream = new QTextStream(logFile);

        //add opening log entry
        AddEntry("Log Opened");
    }

    static void AddEntry(QString messageString)
    {
        //add entry to log file
        (*logTextStream) << QDateTime::currentDateTime().toString(Qt::ISODate) << ": " << messageString << endl;
    }

    static void CloseLog()
    {
        //close the log file
        logFile->close();

        //delete text stream
        delete logTextStream;

        //delete log file
        delete logFile;
    }
};
#endif // LOGGER_H
